package io.gitee.yth.design.pattern.test.core.pattern.behavioral.interpreter;

import java.util.HashMap;
import java.util.Map;

/**
 * 上下文
 *
 * @author yth
 * @since 2023-05-01-22:46
 */
public class Context {

    /**
     * 存储变量名称与变量数值的映射信息
     */
    private final Map<String, Boolean> table = new HashMap<>();

    /**
     * 查询
     *
     * @param name 变量名
     * @return 变量名的值
     */
    boolean lookup(String name) {
        return table.get(name);
    }

    /**
     * 变量赋值
     *
     * @param variableExp 变量表达式
     * @param value       数值
     */
    void assign(VariableExp variableExp, boolean value) {
        table.put(variableExp.getName(), value);
    }

}
